package com.ssyt.yt1.day6.encapsulation;

/**
 * 构造方法的重载及相互之间的调用！
 * 
 * @author Administrator
 *
 */
public class Person {

	private String name;
	// private String nName;
	private boolean adult;

	/**
	 * 构造方法的重载
	 */
	private Person() {
		System.out.println("Person()...");
	}

	public Person(String name) {
		this();
		this.name = name;
		System.out.println("Person(String name)...");
	}

	public Person(String name, boolean adult) {
		// 构造方法间的调用使用this(xxx)，调用必须放在构造方法的首行！
		this(name);
		this.adult = adult;
		System.out.println("Person(String name, boolean adult)...");
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 返回boolean的方法名尽量写成isXXX,这是一个Best Practice！
	 * 
	 * @return
	 */
	public boolean isAdult() {
		return adult;
	}

	public void setAdult(boolean adult) {
		this.adult = adult;
	}

	// 尽量不要把一个字符，当做属性的第一个单词！
	// public String getnName() {
	// return nName;
	// }
	//
	// public void setnName(String nName) {
	// this.nName = nName;
	// }

	public static Person getInstance() {
		return new Person();
	}
}
